Networks, such as public and/or private networks, can be large and complicated. For example, the network architecture of a large company may span many locations, such as data centers, cities, states, countries, and continents. Furthermore, the network architecture of a large company may be divided into a variety of different structures, each of which may provide different services external and/or internal to the company.
Configuring network services to operate efficiently within such a network can be a difficult task. In some solutions, network services are configured statically (e.g., using a static configuration file). While use of a static configuration may be appropriate in some situations, it can also result in inefficient configuration of network service clients. For example, a client in a particular network location may be configured to communicate with servers in a different location (e.g., a location that is not in close network proximity to the client) even though there are servers which are closer network-wise, which can result in increased network traffic and reduced performance of the network service.